Digital video and audio signals, synchronized in the form of a program (or service), can be transmitted over a network as multicast data. In a multicast network, such as DVB-T, a transmitting terminal typically distributes data to the network so that any receiving node wishing to receive a given data service may subscribe to it. In this manner, the transmitting terminal does not establish point-to-point links between a plurality of receiving nodes; one copy of broadcasting data is transmitted, and multiple receivers each can view the same material. An advantage a multicast network protocol has over other data distribution network protocols is that the relatively large amount of data needed to transmit motion pictures or the like is only sent to switching nodes on the network once, and then forwarded to various receiving terminals along the network.
Each digital data service broadcast from the transmitting terminal is segmented into a Packetized Element Stream. In a multicast system, multiple data services are typically transmitted onto the same communication media or channel. Each transport stream packet in this channel contains header information and a payload with multicast service data, for instance, parts of a movie. Receiving terminals use the header information to reassemble the packets carrying the desired service and to discard unwanted packets.
While a multicast protocol eliminates the need for the transmitting terminal to manage multiple connections and reduces the need for the network to handle a flood of redundant data, multicast receiving nodes require a more sophisticated method to sort relevant data than do point-to-point network nodes. As discussed above, a large number of services may be multiplexed onto the same data channel, posing a significant load on the network protocol stack of each receiving terminal that must sort the data. A challenge for receiving nodes is to sort the plurality of available data packets and determine and accept desired data while ignoring unwanted packets.
The solution to deal with this limitation is for a receiving node to use a dual inspection to insure accurate delivery of packets. Tables located in each receiving node track information related to each packet, notably the program identifier (PID) and the DVB media access control (MAC) address. When client software at the receiving node initiates a request for a service, the receiver applies a filter to inspect a data channel for multicast data. The filter initially uses network interface hardware to examine the PID field of the header, which contains enough information to eliminate most unwanted packets. After a packet has been promoted into the protocol stack based on the information in the PID field, software examines the MAC address of each packet to determine if it is indeed part of the desired service. While this system is not perfect, it does accomplish a significant reduction in software packet analysis.
In order to successfully implement the packet selection process discussed above, the software of the receiving node must activate the filter as soon as the client requests a given service. Typically, such a filter is activated when client software communicates a request to the receiver via a programming interface, requiring each client application to be written specifically for DVB-T receiver purposes. Further, in order to avoid software analysis of unneeded packets and therefore to optimize receiver performance, filters must be removed as soon as they are no longer needed.
It is desirable to have a method to activate and remove a filter that is independent of special programming interfaces.
LEXICONDVB-TDigital Video Broadcast - TerrestrialIGMPInternet Group Management ProtocolIPInternet ProtocolIPv4Internet Protocol Version 4IPv6Internet Protocol Version 6MACMedia Access ControlMLDMulticast Listener DiscoveryPIDProgram identifierSIService InformationSITService Information table; notethat this is not the table that storesthe SI in the DVB standard.UDPUser Datagram Protocol